History of ViewS: ViewS V1.96 ~~~~~~~~~~~~~ * (29.4.97) The SAVE-FUNCTION remembers char- and attrib-tables now. (I know, it should have been there just from the beginning... but until I'm obviously the onlyone to use ViewS..., I really don't know why I'm writing this... oh my god, I'm talking to myself again !! ;-) (V1.95 was skipped, to keep ViewS out of this shit ...95 trend ;-> ) (Hiroshima 45, Tschernobyl 86, Windows 95 ;) ViewS V1.94á (2.4.97) ~~~~~~~~~~~~~ * (1.8.96) corrected commandlineoption /W bug (/W- didn't turn wrapping off, when wordwrap was enabled) * (15.8.96) press while scrolling vertically, for doubled speed ViewS V1.93á (3.6.96) ~~~~~~~~~~~~~ * added function to extract parts of the file ( New keys: - : switch selection-bar on/off - : toggle selection of currently focused line - -: clear all selections - - : write all selected lines into a file New commandline-option: - /S[+|*] : write selected line into file automatically at exit ) * added VTXT2EXE - an text_to_executable-"compiler", which makes textfiles selfexecutable, based on a smaller version of ViewS (features basic functions only) * ok, I must confess: the search-function *had* still another bug: Searchstrings in wrapped lines were highlighted wrong! -> just fixed... should be ok now. * again changed the wait-function (for beeps). It uses the PIT-Channel0 now, which should be more exact and stable than the VRetrace (which depended on screen-frequency and desktop-environments (as O*/2 or Windoze)). * fixed a little problem with the save-function * fixed a little keyboard-handler-bug * some internal changes ViewS V1.92á (11.4.96) (not the final version ;) ~~~~~~~~~~~~~ * added Grab-Search-String function () Now you can grap any string from the current screen for searching. (Use the cursor-keys for moving the selection around, and - / for changing the size of the selection. Confirm with or abort with . After confirming the selection, the selected string will be taken as the searchstring. Search for it with or edit and search with [-] . ) * removed "NumLock-Searchstring-Selection" (it was crap) * interrupts are locked now during the critically timed scrolling-parts Previous versions of ViewS began to flicker while scrolling, when some "heavy" programs (like MOD-Players and so on) ran in background (may be as TSRs or in multitaskers...) This should fix that problem. (Don't dare to flicker again, you shitty piece of code... ;-> ) (Ah, now even the timeshare works w/ CubicPlayer in the background ;-) Oh btw, this could probably cause a problem with such fake multitaskers as Winshit 3.1! AFAIK they sometimes get problems, when interrupts are locked. So you can deny the int.-lock by setting [NoCLI] (in VIEWS.CFG) to ON. __About one hour later...__ (5:15 in the morning) Sorry, but I've just found another problem: Although ViewS runs smooth now, the backgroundtask is radically slowed down by this fix. This is a big problem for moduleplayers. The sound plays more slowly and stops sometimes. (See below "Timingproblems" for an explanation). I had to introduce another option, to avoid this new problem. If you realize problems with background-soundplayers, try to lower or raise the value [DelayCLI] (in VIEWSCFG). * yeah, I found some bugs in the search-function Didn't fixed them up to now... ViewS V1.9 (around 6.3.96) (maybe the final version...) ~~~~~~~~~~~ * added WordWrap, where a word will be completely put to the next line, if it exceeds the current wrapwidth (linewidth) instead of breaking the word to the next line. (key: ) (in VIEWS.CFG: [Wrap] Word ) * added keyfunction - for case-sensitive search * added Filtered textmode (-), where all ASCIIs below 32 is filtered out * added Char-conversion-tables + [ChrTab] and [DefChrTab] in VIEWS.CFG + , -, - in ViewS + commandline-option /C * added color-attribute tables (color-highlighting) + [AttrTab] and [DefAttrTab] in VIEWS.CFG + , - and - in ViewS + commandline-option /A * added selection of search-strings (words) directly from the screen. (keys: and NumPad-) * added possibility for scrolling the screen "below 0". (key: ) (in VIEWS.CFG: [ScrollLock]) * added - for resetting horizontal position to 0. * analog (vertical) mouse-mode got a little bit finer (begins now with speed 0.5 instead of speed 1) * added videomodes with any number of lines from 10 to 61. * added videomode with 90 columns (+ keys -<9> and -<8>) * added -- for choosing the previous screenmode * added - for choosing screenmode from a list * changed [VideoMode] entry in VIEWS.CFG. Now it can be: L - in [10..61] - for setting number of lines (e.g. L25) or C - is 80 or 90 - for setting number of columns (e.g. C80) or X - is 80 or 90/ in [10..61] - for setting number of columns and number of lines (e.g. 90x61) * added - for a list of all files saved in savefile * removed [SavChkNoDir] from VIEWS.CFG * added - to load any stored position from savefile * added - to remove any stored position from savefile * added selection of current screen-refresh-frequency (out of 4 internal VGA-frequencies) + [ScrFreq] in VIEWS.CFG + -- in ViewS * removed a bug which caused some errors when counting wrapped lines * mouse-position will be restored correctly at exit now * the wait-function (for the beeps) now uses the horizontal-retrace-flag of the VGA-card for timing, instead of INT 15h/AH=86h (This should avoid the problems of some DX2-systems with buggy INT15h-BIOS- function...) * search-routine now 50% faster * endsearch-rountine now 35% faster * added Sw(i)tch * changed some internal stuff... * creatively introduced some more bugs ;) (hmm, did I forget something ???) ViewS V1.8á6 ~~~~~~~~~~~~~ internal... ViewS V1.8á5 ~~~~~~~~~~~~~ First release... -------------------------------------------------- ("Timingproblems" (I promised it ;->): You know, that a *smooth* scrolling requires, that all screenchanges are made during the vertical retrace. Now there is the typical loop, where you wait for it, by watching the VRetrace-Flag. Now it can happen (and it does so very often), that the background- task takes control just before the VRetrace begins and holds the loop some cycles while the VRetrace is already over. So the wait-loop doesn't realize the VRetrace and waits one full frame until the changes can be done. The result is the heavy flicker known from earlier ViewS-versions. Now you think, the solution is easy. Use a CLI to avoid, that the back- groundtask takes control while you are watching the VRetrace-Flag. That's just what I made one hour before. Here comes the new problem: ViewS is that fast (he he ;), that it only needs around 1% to 5% of a frame (on my AMD486-120) to do all the work. The remainder is spent in the loop waiting for the VRetrace to happen. All over this "rest" the interrupts will be locked; the background-task will be disabled. Now imagine that the background-task gets only 1-5% of the time and you can imagine the slowdown (of the music). The solution for this, is to slowdown ViewS that way, that the waiting- loop (where the interrupts are locked) will get less time. So I simply put another loop in front of the VRetrace-Wait, and wait a bit (about 70% of a frame), while the background-task can do it's job. Of course I used the PIT-channel #0 to get software-independed. Actually this loop should work fine on any system. But inhomogen timing of background-task and different system-speeds can still cause slowdowns or flickers. So I put the DelayCLI-value in the config-file so that you can adjust the length of the "front"-loop. But unfortunately there is no "best" value for it. If it is to low, the background-task won't get enough time. If it is to high, ViewS can miss the VRetrace, so that the scrolling will flicker and the background-task is delayed again. Uhh, problems over problems... bye. ) Bye TW.